package com.cetus.jengine.orm.ext.liferay.testportlet.service.base;

import com.cetus.jengine.orm.ext.liferay.testportlet.model.STransaction;
import com.cetus.jengine.orm.ext.liferay.testportlet.service.SAuthorLocalService;
import com.cetus.jengine.orm.ext.liferay.testportlet.service.SAuthorService;
import com.cetus.jengine.orm.ext.liferay.testportlet.service.SBookLocalService;
import com.cetus.jengine.orm.ext.liferay.testportlet.service.SBookService;
import com.cetus.jengine.orm.ext.liferay.testportlet.service.SLibraryLocalService;
import com.cetus.jengine.orm.ext.liferay.testportlet.service.SLibraryService;
import com.cetus.jengine.orm.ext.liferay.testportlet.service.SMemberLocalService;
import com.cetus.jengine.orm.ext.liferay.testportlet.service.SMemberService;
import com.cetus.jengine.orm.ext.liferay.testportlet.service.STransactionLocalService;
import com.cetus.jengine.orm.ext.liferay.testportlet.service.STransactionService;
import com.cetus.jengine.orm.ext.liferay.testportlet.service.TestLocalService;
import com.cetus.jengine.orm.ext.liferay.testportlet.service.TestService;
import com.cetus.jengine.orm.ext.liferay.testportlet.service.persistence.SAuthorPersistence;
import com.cetus.jengine.orm.ext.liferay.testportlet.service.persistence.SBookPersistence;
import com.cetus.jengine.orm.ext.liferay.testportlet.service.persistence.SLibraryPersistence;
import com.cetus.jengine.orm.ext.liferay.testportlet.service.persistence.SMemberPersistence;
import com.cetus.jengine.orm.ext.liferay.testportlet.service.persistence.STransactionPersistence;

import com.liferay.counter.service.CounterLocalService;

import com.liferay.portal.kernel.bean.BeanReference;
import com.liferay.portal.kernel.bean.IdentifiableBean;
import com.liferay.portal.kernel.dao.jdbc.SqlUpdate;
import com.liferay.portal.kernel.dao.jdbc.SqlUpdateFactoryUtil;
import com.liferay.portal.kernel.dao.orm.DynamicQuery;
import com.liferay.portal.kernel.dao.orm.DynamicQueryFactoryUtil;
import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.exception.SystemException;
import com.liferay.portal.kernel.search.Indexable;
import com.liferay.portal.kernel.search.IndexableType;
import com.liferay.portal.kernel.util.OrderByComparator;
import com.liferay.portal.model.PersistedModel;
import com.liferay.portal.service.BaseLocalServiceImpl;
import com.liferay.portal.service.PersistedModelLocalServiceRegistryUtil;
import com.liferay.portal.service.ResourceLocalService;
import com.liferay.portal.service.ResourceService;
import com.liferay.portal.service.UserLocalService;
import com.liferay.portal.service.UserService;
import com.liferay.portal.service.persistence.ResourcePersistence;
import com.liferay.portal.service.persistence.UserPersistence;

import java.io.Serializable;

import java.util.List;

import javax.sql.DataSource;

/**
 * The base implementation of the s transaction local service.
 *
 * <p>
 * This implementation exists only as a container for the default service methods generated by ServiceBuilder. All custom service methods should be put in {@link com.cetus.jengine.orm.ext.liferay.testportlet.service.impl.STransactionLocalServiceImpl}.
 * </p>
 *
 * @author Brian Wing Shun Chan
 * @see com.cetus.jengine.orm.ext.liferay.testportlet.service.impl.STransactionLocalServiceImpl
 * @see com.cetus.jengine.orm.ext.liferay.testportlet.service.STransactionLocalServiceUtil
 * @generated
 */
public abstract class STransactionLocalServiceBaseImpl
    extends BaseLocalServiceImpl implements STransactionLocalService,
        IdentifiableBean {
    @BeanReference(type = SAuthorLocalService.class)
    protected SAuthorLocalService sAuthorLocalService;
    @BeanReference(type = SAuthorService.class)
    protected SAuthorService sAuthorService;
    @BeanReference(type = SAuthorPersistence.class)
    protected SAuthorPersistence sAuthorPersistence;
    @BeanReference(type = SBookLocalService.class)
    protected SBookLocalService sBookLocalService;
    @BeanReference(type = SBookService.class)
    protected SBookService sBookService;
    @BeanReference(type = SBookPersistence.class)
    protected SBookPersistence sBookPersistence;
    @BeanReference(type = SLibraryLocalService.class)
    protected SLibraryLocalService sLibraryLocalService;
    @BeanReference(type = SLibraryService.class)
    protected SLibraryService sLibraryService;
    @BeanReference(type = SLibraryPersistence.class)
    protected SLibraryPersistence sLibraryPersistence;
    @BeanReference(type = SMemberLocalService.class)
    protected SMemberLocalService sMemberLocalService;
    @BeanReference(type = SMemberService.class)
    protected SMemberService sMemberService;
    @BeanReference(type = SMemberPersistence.class)
    protected SMemberPersistence sMemberPersistence;
    @BeanReference(type = STransactionLocalService.class)
    protected STransactionLocalService sTransactionLocalService;
    @BeanReference(type = STransactionService.class)
    protected STransactionService sTransactionService;
    @BeanReference(type = STransactionPersistence.class)
    protected STransactionPersistence sTransactionPersistence;
    @BeanReference(type = TestLocalService.class)
    protected TestLocalService testLocalService;
    @BeanReference(type = TestService.class)
    protected TestService testService;
    @BeanReference(type = CounterLocalService.class)
    protected CounterLocalService counterLocalService;
    @BeanReference(type = ResourceLocalService.class)
    protected ResourceLocalService resourceLocalService;
    @BeanReference(type = ResourceService.class)
    protected ResourceService resourceService;
    @BeanReference(type = ResourcePersistence.class)
    protected ResourcePersistence resourcePersistence;
    @BeanReference(type = UserLocalService.class)
    protected UserLocalService userLocalService;
    @BeanReference(type = UserService.class)
    protected UserService userService;
    @BeanReference(type = UserPersistence.class)
    protected UserPersistence userPersistence;
    private String _beanIdentifier;
    private STransactionLocalServiceClpInvoker _clpInvoker = new STransactionLocalServiceClpInvoker();

    /*
     * NOTE FOR DEVELOPERS:
     *
     * Never modify or reference this class directly. Always use {@link com.cetus.jengine.orm.ext.liferay.testportlet.service.STransactionLocalServiceUtil} to access the s transaction local service.
     */

    /**
     * Adds the s transaction to the database. Also notifies the appropriate model listeners.
     *
     * @param sTransaction the s transaction
     * @return the s transaction that was added
     * @throws SystemException if a system exception occurred
     */
    @Indexable(type = IndexableType.REINDEX)
    public STransaction addSTransaction(STransaction sTransaction)
        throws SystemException {
        sTransaction.setNew(true);

        return sTransactionPersistence.update(sTransaction, false);
    }

    /**
     * Creates a new s transaction with the primary key. Does not add the s transaction to the database.
     *
     * @param transactionId the primary key for the new s transaction
     * @return the new s transaction
     */
    public STransaction createSTransaction(long transactionId) {
        return sTransactionPersistence.create(transactionId);
    }

    /**
     * Deletes the s transaction with the primary key from the database. Also notifies the appropriate model listeners.
     *
     * @param transactionId the primary key of the s transaction
     * @return the s transaction that was removed
     * @throws PortalException if a s transaction with the primary key could not be found
     * @throws SystemException if a system exception occurred
     */
    @Indexable(type = IndexableType.DELETE)
    public STransaction deleteSTransaction(long transactionId)
        throws PortalException, SystemException {
        return sTransactionPersistence.remove(transactionId);
    }

    /**
     * Deletes the s transaction from the database. Also notifies the appropriate model listeners.
     *
     * @param sTransaction the s transaction
     * @return the s transaction that was removed
     * @throws SystemException if a system exception occurred
     */
    @Indexable(type = IndexableType.DELETE)
    public STransaction deleteSTransaction(STransaction sTransaction)
        throws SystemException {
        return sTransactionPersistence.remove(sTransaction);
    }

    public DynamicQuery dynamicQuery() {
        Class<?> clazz = getClass();

        return DynamicQueryFactoryUtil.forClass(STransaction.class,
            clazz.getClassLoader());
    }

    /**
     * Performs a dynamic query on the database and returns the matching rows.
     *
     * @param dynamicQuery the dynamic query
     * @return the matching rows
     * @throws SystemException if a system exception occurred
     */
    @SuppressWarnings("rawtypes")
    public List dynamicQuery(DynamicQuery dynamicQuery)
        throws SystemException {
        return sTransactionPersistence.findWithDynamicQuery(dynamicQuery);
    }

    /**
     * Performs a dynamic query on the database and returns a range of the matching rows.
     *
     * <p>
     * Useful when paginating results. Returns a maximum of <code>end - start</code> instances. <code>start</code> and <code>end</code> are not primary keys, they are indexes in the result set. Thus, <code>0</code> refers to the first result in the set. Setting both <code>start</code> and <code>end</code> to {@link com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full result set.
     * </p>
     *
     * @param dynamicQuery the dynamic query
     * @param start the lower bound of the range of model instances
     * @param end the upper bound of the range of model instances (not inclusive)
     * @return the range of matching rows
     * @throws SystemException if a system exception occurred
     */
    @SuppressWarnings("rawtypes")
    public List dynamicQuery(DynamicQuery dynamicQuery, int start, int end)
        throws SystemException {
        return sTransactionPersistence.findWithDynamicQuery(dynamicQuery,
            start, end);
    }

    /**
     * Performs a dynamic query on the database and returns an ordered range of the matching rows.
     *
     * <p>
     * Useful when paginating results. Returns a maximum of <code>end - start</code> instances. <code>start</code> and <code>end</code> are not primary keys, they are indexes in the result set. Thus, <code>0</code> refers to the first result in the set. Setting both <code>start</code> and <code>end</code> to {@link com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full result set.
     * </p>
     *
     * @param dynamicQuery the dynamic query
     * @param start the lower bound of the range of model instances
     * @param end the upper bound of the range of model instances (not inclusive)
     * @param orderByComparator the comparator to order the results by (optionally <code>null</code>)
     * @return the ordered range of matching rows
     * @throws SystemException if a system exception occurred
     */
    @SuppressWarnings("rawtypes")
    public List dynamicQuery(DynamicQuery dynamicQuery, int start, int end,
        OrderByComparator orderByComparator) throws SystemException {
        return sTransactionPersistence.findWithDynamicQuery(dynamicQuery,
            start, end, orderByComparator);
    }

    /**
     * Returns the number of rows that match the dynamic query.
     *
     * @param dynamicQuery the dynamic query
     * @return the number of rows that match the dynamic query
     * @throws SystemException if a system exception occurred
     */
    public long dynamicQueryCount(DynamicQuery dynamicQuery)
        throws SystemException {
        return sTransactionPersistence.countWithDynamicQuery(dynamicQuery);
    }

    public STransaction fetchSTransaction(long transactionId)
        throws SystemException {
        return sTransactionPersistence.fetchByPrimaryKey(transactionId);
    }

    /**
     * Returns the s transaction with the primary key.
     *
     * @param transactionId the primary key of the s transaction
     * @return the s transaction
     * @throws PortalException if a s transaction with the primary key could not be found
     * @throws SystemException if a system exception occurred
     */
    public STransaction getSTransaction(long transactionId)
        throws PortalException, SystemException {
        return sTransactionPersistence.findByPrimaryKey(transactionId);
    }

    public PersistedModel getPersistedModel(Serializable primaryKeyObj)
        throws PortalException, SystemException {
        return sTransactionPersistence.findByPrimaryKey(primaryKeyObj);
    }

    /**
     * Returns a range of all the s transactions.
     *
     * <p>
     * Useful when paginating results. Returns a maximum of <code>end - start</code> instances. <code>start</code> and <code>end</code> are not primary keys, they are indexes in the result set. Thus, <code>0</code> refers to the first result in the set. Setting both <code>start</code> and <code>end</code> to {@link com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full result set.
     * </p>
     *
     * @param start the lower bound of the range of s transactions
     * @param end the upper bound of the range of s transactions (not inclusive)
     * @return the range of s transactions
     * @throws SystemException if a system exception occurred
     */
    public List<STransaction> getSTransactions(int start, int end)
        throws SystemException {
        return sTransactionPersistence.findAll(start, end);
    }

    /**
     * Returns the number of s transactions.
     *
     * @return the number of s transactions
     * @throws SystemException if a system exception occurred
     */
    public int getSTransactionsCount() throws SystemException {
        return sTransactionPersistence.countAll();
    }

    /**
     * Updates the s transaction in the database or adds it if it does not yet exist. Also notifies the appropriate model listeners.
     *
     * @param sTransaction the s transaction
     * @return the s transaction that was updated
     * @throws SystemException if a system exception occurred
     */
    @Indexable(type = IndexableType.REINDEX)
    public STransaction updateSTransaction(STransaction sTransaction)
        throws SystemException {
        return updateSTransaction(sTransaction, true);
    }

    /**
     * Updates the s transaction in the database or adds it if it does not yet exist. Also notifies the appropriate model listeners.
     *
     * @param sTransaction the s transaction
     * @param merge whether to merge the s transaction with the current session. See {@link com.liferay.portal.service.persistence.BatchSession#update(com.liferay.portal.kernel.dao.orm.Session, com.liferay.portal.model.BaseModel, boolean)} for an explanation.
     * @return the s transaction that was updated
     * @throws SystemException if a system exception occurred
     */
    @Indexable(type = IndexableType.REINDEX)
    public STransaction updateSTransaction(STransaction sTransaction,
        boolean merge) throws SystemException {
        sTransaction.setNew(false);

        return sTransactionPersistence.update(sTransaction, merge);
    }

    /**
     * Returns the s author local service.
     *
     * @return the s author local service
     */
    public SAuthorLocalService getSAuthorLocalService() {
        return sAuthorLocalService;
    }

    /**
     * Sets the s author local service.
     *
     * @param sAuthorLocalService the s author local service
     */
    public void setSAuthorLocalService(SAuthorLocalService sAuthorLocalService) {
        this.sAuthorLocalService = sAuthorLocalService;
    }

    /**
     * Returns the s author remote service.
     *
     * @return the s author remote service
     */
    public SAuthorService getSAuthorService() {
        return sAuthorService;
    }

    /**
     * Sets the s author remote service.
     *
     * @param sAuthorService the s author remote service
     */
    public void setSAuthorService(SAuthorService sAuthorService) {
        this.sAuthorService = sAuthorService;
    }

    /**
     * Returns the s author persistence.
     *
     * @return the s author persistence
     */
    public SAuthorPersistence getSAuthorPersistence() {
        return sAuthorPersistence;
    }

    /**
     * Sets the s author persistence.
     *
     * @param sAuthorPersistence the s author persistence
     */
    public void setSAuthorPersistence(SAuthorPersistence sAuthorPersistence) {
        this.sAuthorPersistence = sAuthorPersistence;
    }

    /**
     * Returns the s book local service.
     *
     * @return the s book local service
     */
    public SBookLocalService getSBookLocalService() {
        return sBookLocalService;
    }

    /**
     * Sets the s book local service.
     *
     * @param sBookLocalService the s book local service
     */
    public void setSBookLocalService(SBookLocalService sBookLocalService) {
        this.sBookLocalService = sBookLocalService;
    }

    /**
     * Returns the s book remote service.
     *
     * @return the s book remote service
     */
    public SBookService getSBookService() {
        return sBookService;
    }

    /**
     * Sets the s book remote service.
     *
     * @param sBookService the s book remote service
     */
    public void setSBookService(SBookService sBookService) {
        this.sBookService = sBookService;
    }

    /**
     * Returns the s book persistence.
     *
     * @return the s book persistence
     */
    public SBookPersistence getSBookPersistence() {
        return sBookPersistence;
    }

    /**
     * Sets the s book persistence.
     *
     * @param sBookPersistence the s book persistence
     */
    public void setSBookPersistence(SBookPersistence sBookPersistence) {
        this.sBookPersistence = sBookPersistence;
    }

    /**
     * Returns the s library local service.
     *
     * @return the s library local service
     */
    public SLibraryLocalService getSLibraryLocalService() {
        return sLibraryLocalService;
    }

    /**
     * Sets the s library local service.
     *
     * @param sLibraryLocalService the s library local service
     */
    public void setSLibraryLocalService(
        SLibraryLocalService sLibraryLocalService) {
        this.sLibraryLocalService = sLibraryLocalService;
    }

    /**
     * Returns the s library remote service.
     *
     * @return the s library remote service
     */
    public SLibraryService getSLibraryService() {
        return sLibraryService;
    }

    /**
     * Sets the s library remote service.
     *
     * @param sLibraryService the s library remote service
     */
    public void setSLibraryService(SLibraryService sLibraryService) {
        this.sLibraryService = sLibraryService;
    }

    /**
     * Returns the s library persistence.
     *
     * @return the s library persistence
     */
    public SLibraryPersistence getSLibraryPersistence() {
        return sLibraryPersistence;
    }

    /**
     * Sets the s library persistence.
     *
     * @param sLibraryPersistence the s library persistence
     */
    public void setSLibraryPersistence(SLibraryPersistence sLibraryPersistence) {
        this.sLibraryPersistence = sLibraryPersistence;
    }

    /**
     * Returns the s member local service.
     *
     * @return the s member local service
     */
    public SMemberLocalService getSMemberLocalService() {
        return sMemberLocalService;
    }

    /**
     * Sets the s member local service.
     *
     * @param sMemberLocalService the s member local service
     */
    public void setSMemberLocalService(SMemberLocalService sMemberLocalService) {
        this.sMemberLocalService = sMemberLocalService;
    }

    /**
     * Returns the s member remote service.
     *
     * @return the s member remote service
     */
    public SMemberService getSMemberService() {
        return sMemberService;
    }

    /**
     * Sets the s member remote service.
     *
     * @param sMemberService the s member remote service
     */
    public void setSMemberService(SMemberService sMemberService) {
        this.sMemberService = sMemberService;
    }

    /**
     * Returns the s member persistence.
     *
     * @return the s member persistence
     */
    public SMemberPersistence getSMemberPersistence() {
        return sMemberPersistence;
    }

    /**
     * Sets the s member persistence.
     *
     * @param sMemberPersistence the s member persistence
     */
    public void setSMemberPersistence(SMemberPersistence sMemberPersistence) {
        this.sMemberPersistence = sMemberPersistence;
    }

    /**
     * Returns the s transaction local service.
     *
     * @return the s transaction local service
     */
    public STransactionLocalService getSTransactionLocalService() {
        return sTransactionLocalService;
    }

    /**
     * Sets the s transaction local service.
     *
     * @param sTransactionLocalService the s transaction local service
     */
    public void setSTransactionLocalService(
        STransactionLocalService sTransactionLocalService) {
        this.sTransactionLocalService = sTransactionLocalService;
    }

    /**
     * Returns the s transaction remote service.
     *
     * @return the s transaction remote service
     */
    public STransactionService getSTransactionService() {
        return sTransactionService;
    }

    /**
     * Sets the s transaction remote service.
     *
     * @param sTransactionService the s transaction remote service
     */
    public void setSTransactionService(STransactionService sTransactionService) {
        this.sTransactionService = sTransactionService;
    }

    /**
     * Returns the s transaction persistence.
     *
     * @return the s transaction persistence
     */
    public STransactionPersistence getSTransactionPersistence() {
        return sTransactionPersistence;
    }

    /**
     * Sets the s transaction persistence.
     *
     * @param sTransactionPersistence the s transaction persistence
     */
    public void setSTransactionPersistence(
        STransactionPersistence sTransactionPersistence) {
        this.sTransactionPersistence = sTransactionPersistence;
    }

    /**
     * Returns the test local service.
     *
     * @return the test local service
     */
    public TestLocalService getTestLocalService() {
        return testLocalService;
    }

    /**
     * Sets the test local service.
     *
     * @param testLocalService the test local service
     */
    public void setTestLocalService(TestLocalService testLocalService) {
        this.testLocalService = testLocalService;
    }

    /**
     * Returns the test remote service.
     *
     * @return the test remote service
     */
    public TestService getTestService() {
        return testService;
    }

    /**
     * Sets the test remote service.
     *
     * @param testService the test remote service
     */
    public void setTestService(TestService testService) {
        this.testService = testService;
    }

    /**
     * Returns the counter local service.
     *
     * @return the counter local service
     */
    public CounterLocalService getCounterLocalService() {
        return counterLocalService;
    }

    /**
     * Sets the counter local service.
     *
     * @param counterLocalService the counter local service
     */
    public void setCounterLocalService(CounterLocalService counterLocalService) {
        this.counterLocalService = counterLocalService;
    }

    /**
     * Returns the resource local service.
     *
     * @return the resource local service
     */
    public ResourceLocalService getResourceLocalService() {
        return resourceLocalService;
    }

    /**
     * Sets the resource local service.
     *
     * @param resourceLocalService the resource local service
     */
    public void setResourceLocalService(
        ResourceLocalService resourceLocalService) {
        this.resourceLocalService = resourceLocalService;
    }

    /**
     * Returns the resource remote service.
     *
     * @return the resource remote service
     */
    public ResourceService getResourceService() {
        return resourceService;
    }

    /**
     * Sets the resource remote service.
     *
     * @param resourceService the resource remote service
     */
    public void setResourceService(ResourceService resourceService) {
        this.resourceService = resourceService;
    }

    /**
     * Returns the resource persistence.
     *
     * @return the resource persistence
     */
    public ResourcePersistence getResourcePersistence() {
        return resourcePersistence;
    }

    /**
     * Sets the resource persistence.
     *
     * @param resourcePersistence the resource persistence
     */
    public void setResourcePersistence(ResourcePersistence resourcePersistence) {
        this.resourcePersistence = resourcePersistence;
    }

    /**
     * Returns the user local service.
     *
     * @return the user local service
     */
    public UserLocalService getUserLocalService() {
        return userLocalService;
    }

    /**
     * Sets the user local service.
     *
     * @param userLocalService the user local service
     */
    public void setUserLocalService(UserLocalService userLocalService) {
        this.userLocalService = userLocalService;
    }

    /**
     * Returns the user remote service.
     *
     * @return the user remote service
     */
    public UserService getUserService() {
        return userService;
    }

    /**
     * Sets the user remote service.
     *
     * @param userService the user remote service
     */
    public void setUserService(UserService userService) {
        this.userService = userService;
    }

    /**
     * Returns the user persistence.
     *
     * @return the user persistence
     */
    public UserPersistence getUserPersistence() {
        return userPersistence;
    }

    /**
     * Sets the user persistence.
     *
     * @param userPersistence the user persistence
     */
    public void setUserPersistence(UserPersistence userPersistence) {
        this.userPersistence = userPersistence;
    }

    public void afterPropertiesSet() {
        PersistedModelLocalServiceRegistryUtil.register("com.cetus.jengine.orm.ext.liferay.testportlet.model.STransaction",
            sTransactionLocalService);
    }

    public void destroy() {
        PersistedModelLocalServiceRegistryUtil.unregister(
            "com.cetus.jengine.orm.ext.liferay.testportlet.model.STransaction");
    }

    /**
     * Returns the Spring bean ID for this bean.
     *
     * @return the Spring bean ID for this bean
     */
    public String getBeanIdentifier() {
        return _beanIdentifier;
    }

    /**
     * Sets the Spring bean ID for this bean.
     *
     * @param beanIdentifier the Spring bean ID for this bean
     */
    public void setBeanIdentifier(String beanIdentifier) {
        _beanIdentifier = beanIdentifier;
    }

    public Object invokeMethod(String name, String[] parameterTypes,
        Object[] arguments) throws Throwable {
        return _clpInvoker.invokeMethod(name, parameterTypes, arguments);
    }

    protected Class<?> getModelClass() {
        return STransaction.class;
    }

    protected String getModelClassName() {
        return STransaction.class.getName();
    }

    /**
     * Performs an SQL query.
     *
     * @param sql the sql query
     */
    protected void runSQL(String sql) throws SystemException {
        try {
            DataSource dataSource = sTransactionPersistence.getDataSource();

            SqlUpdate sqlUpdate = SqlUpdateFactoryUtil.getSqlUpdate(dataSource,
                    sql, new int[0]);

            sqlUpdate.update();
        } catch (Exception e) {
            throw new SystemException(e);
        }
    }
}
